package com.ruoyi.dida.db.manager.service;

import com.ruoyi.common.utils.ReturnT;
import com.ruoyi.dida.db.manager.entity.ColumnInfo;
import com.ruoyi.dida.db.manager.entity.DBInfo;
import com.ruoyi.dida.db.manager.entity.TableInfo;


import java.util.List;
import java.util.Map;

public interface DBService {
    /**
     * 查询指定数据源中库的列表
     * @return
     */
    List<DBInfo> list();

    /**
     * @param dbName 数据库名
     * 根据数据库名查询对应表列表
     */
    List<TableInfo> tableList(String dbName);


    /**
     * 指定条件查询
     * @param dbName 数据库名
     * @param tableName 表名
     * @param collectWay 采集方式
     * @param status 状态
     * @return
     */
    List<TableInfo> tableSearchList(String dbName, String tableName, String collectWay, String status);

    /**
     *
     * @param dbName 库名
     * @param tableName 表名
     * @return
     */
    List<ColumnInfo> tableColumnInfo(String dbName, String tableName);

    /**
     * 查询表记录
     * @param dbName 数据库名
     * @param tableName 数据表名
     * @param nums 数量
     * @return
     */
    List<?> tableData(String dbName, String tableName, int nums);

    // 新增DB
    int addDB(DBInfo dbInfo);
    // 根据dbName查询dbInfo
    DBInfo selectDbInfo(Long dbId);
    // 修改dbInfo信息
    int updateDbInfo(DBInfo dbInfo);
    // 删除DBInfo信息
    int delectDbInfoByDbId(Long dbId);
    // 根据库名，表名，创建表
    ReturnT addTable(String dbNameSource, String tableNameSource, String dbNameTarget, String tableNameTarget);


}
